// #include "parametermodel.h"
// #include "source/logger.h"

// ParameterModel &ParameterModel::getInstance()
// {
//     static ParameterModel instance;
//     return instance;
// }

// ParameterModel::ParameterModel(QObject* parent)
//     : QObject(parent),
//     m_exposureTime(0),
//     m_exposureAuto(0),
//     m_cameraImgSize({3072, 2048, 3}),
//     m_gainAuto(0),
//     m_gain(10),
//     m_balanceWhiteAuto(0),
//     m_balanceRatio(0),
//     m_cameraRoi({0, 0, 3072, 2048}),
//     m_imageNodeNum(3) {}

// int ParameterModel::exposureTime() const {
//     LogDebug << " ParameterModel::exposureTime:" << m_exposureTime;
//     return m_exposureTime;
// }

// void ParameterModel::setExposureTime(int exposureTime) {
//     if (m_exposureTime != exposureTime) {
//         m_exposureTime = exposureTime;
//         emit exposureTimeChanged();
//     }
// }

// int ParameterModel::exposureAuto() const {
//     return m_exposureAuto;
// }

// void ParameterModel::setExposureAuto(int exposureAuto) {
//     if (m_exposureAuto != exposureAuto) {
//         m_exposureAuto = exposureAuto;
//         emit exposureAutoChanged();
//     }
// }

// QVector<int> ParameterModel::cameraImgSize() const {
//     return m_cameraImgSize;
// }

// void ParameterModel::setCameraImgSize(const QVector<int> &cameraImgSize) {
//     if (m_cameraImgSize != cameraImgSize) {
//         m_cameraImgSize = cameraImgSize;
//         emit cameraImgSizeChanged();
//     }
// }

// int ParameterModel::gainAuto() const {
//     return m_gainAuto;
// }

// void ParameterModel::setGainAuto(int gainAuto) {
//     if (m_gainAuto != gainAuto) {
//         m_gainAuto = gainAuto;
//         emit gainAutoChanged();
//     }
// }

// int ParameterModel::getgain() const {
//     return m_gain;
// }

// void ParameterModel::setGain(int gain) {
//     if (m_gain != gain) {
//         m_gain = gain;
//         emit gainChanged();
//     }
// }

// int ParameterModel::balanceWhiteAuto() const {
//     return m_balanceWhiteAuto;
// }

// void ParameterModel::setBalanceWhiteAuto(int balanceWhiteAuto) {
//     if (m_balanceWhiteAuto != balanceWhiteAuto) {
//         m_balanceWhiteAuto = balanceWhiteAuto;
//         emit balanceWhiteAutoChanged();
//     }
// }

// int ParameterModel::balanceRatio() const {
//     return m_balanceRatio;
// }

// void ParameterModel::setBalanceRatio(int balanceRatio) {
//     if (m_balanceRatio != balanceRatio) {
//         m_balanceRatio = balanceRatio;
//         emit balanceRatioChanged();
//     }
// }

// QList<int> ParameterModel::cameraRoi() const {
//     return m_cameraRoi;
// }

// void ParameterModel::setCameraRoi(const QList<int> &cameraRoi) {
//     if (m_cameraRoi != cameraRoi) {
//         m_cameraRoi = cameraRoi;
//         emit cameraRoiChanged();
//     }
// }

// int ParameterModel::imageNodeNum() const {
//     return m_imageNodeNum;
// }

// void ParameterModel::setImageNodeNum(int imageNodeNum) {
//     if (m_imageNodeNum != imageNodeNum) {
//         m_imageNodeNum = imageNodeNum;
//         emit imageNodeNumChanged();
//     }
// }

// void ParameterModel::applyParameters(const YAML::Node& valueTable) {
//     setExposureTime(valueTable["camera"]["exposureTime"].as<int>());
//     setExposureAuto(valueTable["camera"]["exposureAuto"].as<int>());
//     setCameraImgSize({valueTable["camera"]["cameraImgSize"][0].as<int>(),
//                       valueTable["camera"]["cameraImgSize"][1].as<int>(),
//                       valueTable["camera"]["cameraImgSize"][2].as<int>()});
//     setGainAuto(valueTable["camera"]["gainAuto"].as<int>());
//     setGain(valueTable["camera"]["gain"].as<int>());
//     setBalanceWhiteAuto(valueTable["camera"]["balanceWhiteAuto"].as<int>());
//     setBalanceRatio(valueTable["camera"]["balanceRatio"].as<int>());
//     setCameraRoi({valueTable["camera"]["cameraRoi"][0].as<int>(),
//                   valueTable["camera"]["cameraRoi"][1].as<int>(),
//                   valueTable["camera"]["cameraRoi"][2].as<int>(),
//                   valueTable["camera"]["cameraRoi"][3].as<int>()});
//     setImageNodeNum(valueTable["camera"]["imageNodeNum"].as<int>());
// }

// void ParameterModel::updateParameters(YAML::Node& valueTable) const {
//     valueTable["camera"]["exposureTime"] = m_exposureTime;
//     valueTable["camera"]["exposureAuto"] = m_exposureAuto;
//     valueTable["camera"]["cameraImgSize"] = YAML::Load("[" + std::to_string(m_cameraImgSize[0]) + ", " +
//                                                        std::to_string(m_cameraImgSize[1]) + ", " +
//                                                        std::to_string(m_cameraImgSize[2]) + "]");
//     valueTable["camera"]["gainAuto"] = m_gainAuto;
//     valueTable["camera"]["gain"] = m_gain;
//     valueTable["camera"]["balanceWhiteAuto"] = m_balanceWhiteAuto;
//     valueTable["camera"]["balanceRatio"] = m_balanceRatio;
//     valueTable["camera"]["cameraRoi"] = YAML::Load("[" + std::to_string(m_cameraRoi[0]) + ", " +
//                                                    std::to_string(m_cameraRoi[1]) + ", " +
//                                                    std::to_string(m_cameraRoi[2]) + ", " +
//                                                    std::to_string(m_cameraRoi[3]) + "]");
//     valueTable["camera"]["imageNodeNum"] = m_imageNodeNum;
// }

